/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Action;

import ActionForm.MantenimientoTipoDocumentoActionForm;
import BE.TipoDocumentoBE;
import BL.TipoDocumentoBL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
import org.apache.struts.actions.DispatchAction;

/**
 *
 * @author Xatuuu
 */
public class MantenimientoTipoDocumentoAction extends DispatchAction {

    public ActionForward modificarTipoDocumento(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {

        MantenimientoTipoDocumentoActionForm mantenimientoTipoDocumentoForm = (MantenimientoTipoDocumentoActionForm) form;

        /* lalinuna.de 04.11.2004
         * get id of the book from request
         */
        int srlIdtipodocumento = Integer.parseInt(request.getParameter("srlIdtipodocumento"));

        HttpSession session = request.getSession();

        TipoDocumentoBL objTipoDocumentoBL = new TipoDocumentoBL();
        TipoDocumentoBE objTipodocumentoBE = new TipoDocumentoBE();
        objTipodocumentoBE.setSrlIdtipodocumento(srlIdtipodocumento);
        ArrayList<TipoDocumentoBE> arrTipoDocumento = (ArrayList<TipoDocumentoBE>) objTipoDocumentoBL.buscarTipoDocumento(objTipodocumentoBE);//Debe devolver un solo elemento en el arreglo

        mantenimientoTipoDocumentoForm.setSrlIdtipodocumento(arrTipoDocumento.get(0).getSrlIdtipodocumento());
        mantenimientoTipoDocumentoForm.setCvNombredocumento(arrTipoDocumento.get(0).getCvNombredocumento());
        mantenimientoTipoDocumentoForm.setBoolEliminado(arrTipoDocumento.get(0).getBoolEliminado());

        return mapping.findForward("mostrarModificacion");

    }

    /**
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward eliminarTipoDocumento(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {
        MantenimientoTipoDocumentoActionForm mantenimientoTipoDocumentoForm = (MantenimientoTipoDocumentoActionForm) form;

        /* lalinuna.de 04.11.2004
         * get id of the book from request
         */
        int srlIdtipodocumento = Integer.parseInt(request.getParameter("srlIdtipodocumento"));

        /* lalinuna.de 04.11.2004
         * init SimulateDB class and delete book by id
         */
        HttpSession session = request.getSession();
        TipoDocumentoBL objTipoDocumentoBL = new TipoDocumentoBL();
        TipoDocumentoBE objTipodocumentoBE = new TipoDocumentoBE();
        objTipodocumentoBE.setSrlIdtipodocumento(srlIdtipodocumento);
        ArrayList<TipoDocumentoBE> arrTipoDocumento = (ArrayList<TipoDocumentoBE>) objTipoDocumentoBL.buscarTipoDocumento(objTipodocumentoBE);//Debe devolver un solo elemento en el arreglo

        mantenimientoTipoDocumentoForm.setSrlIdtipodocumento(arrTipoDocumento.get(0).getSrlIdtipodocumento());
        mantenimientoTipoDocumentoForm.setCvNombredocumento(arrTipoDocumento.get(0).getCvNombredocumento());
        mantenimientoTipoDocumentoForm.setBoolEliminado(arrTipoDocumento.get(0).getBoolEliminado());

        objTipoDocumentoBL = new TipoDocumentoBL();
        TipoDocumentoBE objTipodocumento = buscarTipoDocumentoxid((ArrayList) session.getAttribute("arrTipoDocumento"), srlIdtipodocumento);
        objTipodocumento.setBoolEliminado(true);
        objTipoDocumentoBL.modificarTipoDocumento(objTipodocumento);

        objTipoDocumentoBL = new TipoDocumentoBL();
        session.setAttribute("arrTipoDocumento", (Collection) objTipoDocumentoBL.seleccionarTipoDocumento());

        return mapping.findForward("borrarTipoDocumento");

    }

    /**
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward registrarTipoDocumento(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {
        MantenimientoTipoDocumentoActionForm mantenimientoTipoDocumentoForm = (MantenimientoTipoDocumentoActionForm) form;

        return mapping.findForward("registrarTipoDocumento");

    }

    /**
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward grabarTipoDocumento(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {

        MantenimientoTipoDocumentoActionForm mantenimientoTipoDocumentoForm = (MantenimientoTipoDocumentoActionForm) form;

        /* lalinuna.de 04.11.2004
         * init SimulateDB class and get data by id
         */
        HttpSession session = request.getSession();

        TipoDocumentoBL objTipoDocumentoBL = new TipoDocumentoBL();
        TipoDocumentoBE objTipodocumentoBE=new TipoDocumentoBE();
        objTipodocumentoBE.setSrlIdtipodocumento(mantenimientoTipoDocumentoForm.getSrlIdtipodocumento());
        objTipodocumentoBE.setCvNombredocumento(mantenimientoTipoDocumentoForm.getCvNombredocumento());
        objTipodocumentoBE.setBoolEliminado(mantenimientoTipoDocumentoForm.getBoolEliminado());


        objTipoDocumentoBL.modificarTipoDocumento(objTipodocumentoBE);

        objTipoDocumentoBL = new TipoDocumentoBL();
        session.setAttribute("arrTipoDocumento", (Collection) objTipoDocumentoBL.seleccionarTipoDocumento());


        return mapping.findForward("mostrarListaTipoDocumento");

    }


    /* forward name="success" path="" */
//    private final static String SUCCESS = "success";
    /**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
//    public ActionForward execute(ActionMapping mapping, ActionForm form,
//            HttpServletRequest request, HttpServletResponse response)
//            throws Exception {
//        TipoDocumentoBL objTipoDocumentoBL = new TipoDocumentoBL();
//        List<Tipodocumento> arrTipoDocumento= (List<Tipodocumento>) objTipoDocumentoBL.seleccionarTipoDocumento();
//        request.setAttribute("arrTipoDocumento", arrTipoDocumento);
//        return mapping.findForward(SUCCESS);
//    }
    private TipoDocumentoBE buscarTipoDocumentoxid(ArrayList arrTipoDocumento, int srlIdtipodocumento) {

        for (int i = 0; i < arrTipoDocumento.size(); i++) {
            if (((TipoDocumentoBE) arrTipoDocumento.get(i)).getSrlIdtipodocumento() == srlIdtipodocumento) {
                return (((TipoDocumentoBE) arrTipoDocumento.get(i)));
            }
        }


        return null;
    }
}
